package com.gitee.W_Jun.java;

/**
 * @author https://gitee.com/W_Jun
 * @date 2021-12-30 16:02
 * @Description
 *  1.设置堆空间大小的参数
 *      `-Xms`用于表示堆区(年轻代+老年代)的起始内存，等价于`-XX:InitialHeapSize`.
 *      `-Xmx`用于表示堆区(年轻代+老年代)的最大内存，等价于`-XX:MaxHeapSize`.
 *       -X是jvm的运行参数
 *       ms是memory start
 *       mx是memory max
 *  2.默认堆空间的大小
 *      默认情况下，
 *      初始内存大小为：物理电脑内存大小/64；
 *      最大内存大小为：物理电脑内存大小/64。
 *  3.手动设置：-Xms600m -Xmx600m
 *      开发中建议将初始堆内存和最大的堆内存设置成相同的值。
 *  4.如何查看设置的参数：
 *      方式一：jps和jstat -gc 进程id
 *      方式二：-XX:+PrintGCDetails
 */
public class HeapSpaceInitial {
    public static void main(String[] args) {
        //返回java虚拟机中的堆内存总量
        long initialMemory = Runtime.getRuntime().totalMemory() / 1024 / 1024;
        //返回java虚拟机试图使用的最大堆内存量
        long maxMemory = Runtime.getRuntime().maxMemory() / 1024 / 1024;

        System.out.println("-Xms : " + initialMemory + "M");
        System.out.println("-Xmx : " + maxMemory + "M");
/*
        System.out.println("系统内存大小为：" + initialMemory * 64.0 / 1024 + "G");
        System.out.println("系统内存大小为：" + maxMemory * 4.0 / 1024 + "G");
*/

        try {
            Thread.sleep(1000000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
